/******************************************************************************
/// @file    gimbal_task.h
/// @author  langgo
/// @date    2016-11-30
/// @brief

/// @copyright Copyright (c) 2017 <dji-innovations, Corp. RM Dept.>
/// @license MIT License
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction,including without limitation the rights
/// to use, copy, modify, merge, publish, distribute, sublicense,and/or sell
/// copies of the Software, and to permit persons to whom the Software is furnished
/// to do so,subject to the following conditions:
///
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
/// THE SOFTWARE.
*******************************************************************************/
#ifndef __CHASSIS_TASK
#define __CHASSIS_TASK

#include "mytype.h"
void gimbal_task(const void* argu);

typedef enum {

    GIMBAL_INIT = 0,
    GIMBAL_RELAX,
    GIMBAL_CLOSE_LOOP_ENCODER,
    GIMBAL_CLOSE_LOOP_ZGYRO,

} gimbal_mode_e;

typedef struct
{
    gimbal_mode_e ctrl_mode; //yaw 闭环模式
    gimbal_mode_e last_mode; //
    //	int is_standby_mode;	//rc no action
    //	int over_range_err_cnt;	//for safety purpose
    //	int gimbal_init_done;
    //	int is_zgyro_ready;
    //	float zgyro_target;
    //	float zgyro_rc;
    //	float zgyro_mouse;
    //	float zgyro_angle;
    float zgyro_offset;
    //	float final_position_get;
    //	float final_position_set;

} gimbal_yaw_t;

extern gimbal_yaw_t gYaw;
extern int          yaw_center_offset;
extern s16          yaw_relative_pos;
extern u8           is_in_big_buff_mode;
#endif
